﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using dacli.modelos;
using dacli.modelos.dao;

namespace dacli.pantallas
{
    public partial class Examenes : Form
    {
        ExamenesCategoriaDAO examenesCategoriaDao;
        public Examenes()
        {
            InitializeComponent();
            examenesCategoriaDao = new ExamenesCategoriaDAO();
            cmbCategoria.DataSource = examenesCategoriaDao.llenarCombo("nombre", null).DataSource;
            cmbCategoria.DisplayMember = "nombre";
            cmbCategoria.ValueMember = "id";
            limpiar();
        }

        private void limpiar()
        {
            txtNombre.Text = "";
            cmbCategoria.SelectedValue = 0;
            btnIncluir.Enabled = false;
            btnModificar.Enabled = false;
            btnEliminar.Enabled = false;

        }
        
          

        private void splitContainer1_Panel1_Paint(object sender, PaintEventArgs e)
        {

        }

        private void btnIncluir_Click(object sender, EventArgs e)
        {
            dacli.modelos.Examenes examenes = new dacli.modelos.Examenes();
            examenes.nombre = txtNombre.Text;
            examenes.examenesCategoria = new ExamenesCategoriaDAO().asignarId((int)cmbCategoria.SelectedValue);
            new ExamenesDAO(examenes).incluir();
            MessageBox.Show("Registro incluido");
            this.limpiar();

        }

        private void button2_Click(object sender, EventArgs e)
        {
            Precios precios = new Precios();
            ExamenesDAO examenDAO = new ExamenesDAO();
            if (examenDAO.consultar("nombre='" + txtNombre.Text + "'"))
            {
                precios.examenes = examenDAO.examenes;
                precios.ShowDialog();
            }
            else
            {
                MessageBox.Show("Debe primero guardar los cambios para ver los precios");
            }
        }

        private void splitContainer1_Panel2_Paint(object sender, PaintEventArgs e)
        {

        }
            
        private void Examenes_Load(object sender, EventArgs e)
        {
            txtNombre.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            txtNombre.AutoCompleteSource = AutoCompleteSource.CustomSource;
            txtNombre.AutoCompleteCustomSource.AddRange(new ExamenesDAO().listar("nombre").ToArray());
             
        }

        private void button1_Click(object sender, EventArgs e)
        {
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnTab_Click(object sender, EventArgs e)
        {
            SendKeys.Send("{TAB}");
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            Catalogo catalogo = new Catalogo(new ExamenesDAO().tabla, "nombre");
            catalogo.ShowDialog();
            ExamenesDAO examenesDao = new ExamenesDAO();
            if (catalogo.resultado != -1)
            {
                examenesDao.asignarId(catalogo.resultado);
                txtNombre.Text = examenesDao.examenes.nombre;
                cmbCategoria.SelectedValue = examenesDao.examenes.examenesCategoria.id;
                botonesEdicion();
            }

        }

        private void botonesEdicion()
        {
            btnIncluir.Enabled = false;
            btnModificar.Enabled = true;
            btnEliminar.Enabled = true;

        }

        private void txtNombre_Validated(object sender, EventArgs e)
        {
            ExamenesDAO examenesDao = new ExamenesDAO();
            if (examenesDao.consultar("nombre = '" + txtNombre.Text + "'"))
            {
                txtNombre.Text = examenesDao.examenes.nombre;
                cmbCategoria.SelectedValue = examenesDao.examenes.examenesCategoria.id;
                this.botonesEdicion();
            }
            else
            {
                string aux = txtNombre.Text;
                this.limpiar();
                txtNombre.Text = aux;
                btnIncluir.Enabled = true;
            }
        }

        private void txtNombre_TextChanged(object sender, EventArgs e)
        {

        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show(this, "¿Está seguro que desea Eliminar?", "Eliminar Registro", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {

                modelos.Examenes examen = new modelos.Examenes();
                ExamenesDAO examenDao = new ExamenesDAO();
                if (examenDao.consultar("nombre = '" + this.txtNombre.Text + "'"))
                {
                    examen = (modelos.Examenes)examenDao.examenes.Clone();
                }
                new ExamenesDAO(examen).eliminar();
                MessageBox.Show("Registro eliminado");
                this.limpiar();
            }
        }

        private void btnModificar_Click(object sender, EventArgs e)
        {
            modelos.Examenes examenes = new modelos.Examenes();
            ExamenesDAO examenesDao = new ExamenesDAO();
            if (examenesDao.consultar("nombre = '" + txtNombre.Text + "'"))
            {
                examenes = (modelos.Examenes)examenesDao.examenes.Clone();
            }

            examenes.nombre  = txtNombre.Text;
            examenes.examenesCategoria = new ExamenesCategoriaDAO().asignarId((int)cmbCategoria.SelectedValue);            
            new ExamenesDAO(examenes).modificar();
            MessageBox.Show("Registro modificado");
            this.limpiar();

        }
    }
}
